package lib

import "math"

func init() {
	Probs = append(Probs, Problem{
		Num:         334,
		Discription: "是否存在递增的三元子序列",
		Level:       2,
		Labels: map[string]int{
			"贪心": 1,
		},
	})
}

func IncreasingTriplet(nums []int) bool {
	first := nums[0]
	second := math.MaxInt32
	for i := 1; i < len(nums); i++ {
		if nums[i] > second {
			return true
		} else if nums[i] > first {
			second = nums[i]
		} else {
			//两种情况
			//1. 实际答案的第一个元素位置在first以及之后，符合正常的逻辑
			//2.实际答案的第一个元素位置就是原来的first（后面有一个元素比second大），但这也不影响答案
			first = nums[i]
		}
	}

	return false
}
